import os
import tabula
from pdf2docx import Converter
class HandleFile:
    def __init__(self,absolute_path):
        (path, filename) = os.path.split(absolute_path)  # 划分文件路径与文件名
        self.path = path # 文件路径
        self.filename =filename #文件名

    @staticmethod
    # 问题一，通过这个方法生成的pdf文件为将图片添加至pdf上，无发通过pdfToCsv获取pdf中的text（文本） 因为odf上只有一张图片。
    def imageToPdf(file_absolute_path):
        (path, filename) = os.path.split(file_absolute_path)  # 划分文件路径与文件名
        # print(path,filename)

        new_pdf_name = filename.split('.')[0] + ".pdf"
        # print(new_file_name)

        # 注意 windows 这里可能会报错，mac与win下的路径不一样 注意这个'/'！！！
        command = "img2pdf " + file_absolute_path + " -o " + path + '/' + new_pdf_name
        print(command)
        os.system(command)
        return None  # 后期可修改返回值

    @staticmethod # 有效，后期需处理数据
    def pdfToCsv(file_in_absolute_path):
        (path, filename) = os.path.split(file_in_absolute_path)  # 划分文件路径与文件名
        new_csv_name = filename.split('.')[0] + ".csv"
        file_out_absolute_path = path+ '/' + new_csv_name
        tabula.convert_into(input_path=file_in_absolute_path,output_path=file_out_absolute_path,pages=1)


    @staticmethod #有问题，也是直接将pdf中的图片
    def pdfToDoc(file_in_absolute_path):
        (path, filename) = os.path.split(file_in_absolute_path)  # 划分文件路径与文件名
        new_docx_name = filename.split('.')[0] + ".docx"
        file_out_absolute_path = path + '/' + new_docx_name

        # convert pdf to docx
        cv = Converter(file_in_absolute_path)
        cv.convert(file_out_absolute_path)  # 默认参数start=0, end=None
        cv.close()





if __name__ == '__main__':
    HandleFile.pdfToDoc("/Users/imastere/Desktop/江财统计学院二学位.pdf")
